home *** CD-ROM | disk | FTP | other *** search
- #
- # Top-Level Rule
- #
-
- .PHONY: all
-
- ifeq "AGGREGATE" "$(PROJTYPE)"
- all:
- else
- all: build
- endif
-
- #
- # Local site-wide Makefile customization
- #
-
- ifndef LOCAL_MAKEFILEDIR
- LOCAL_MAKEFILEDIR = $(NEXT_ROOT)/LocalDeveloper/Makefiles/pb_makefiles
- endif
-
- -include $(LOCAL_MAKEFILEDIR)/common.make.preamble
-
- #
- # merging OS-specific variables
- #
-
- ifndef INSTALLDIR
- ifeq "SOLARIS" "$(OS)"
- INSTALLDIR = $(PDO_UNIX_INSTALLDIR)
- else
- ifeq "HPUX" "$(OS)"
- INSTALLDIR = $(PDO_UNIX_INSTALLDIR)
- else
- INSTALLDIR = $($(OS)_INSTALLDIR)
- endif
- endif
- endif
-
- #
- # Miscellaneous variables
- #
-
- SILENT = @
- ARCH = $(shell $(ARCH_CMD))
- ifndef RC_ARCHS
- RC_ARCHS = $(ARCH)
- endif
- TARGET_ARCHS = $(RC_ARCHS)
- MAKEFILE_SOURCE = pb_makefiles
-
- ifeq "WINDOWS" "$(OS)"
-
- LINK_SUBPROJECTS = NO
- DISABLE_OBJCPLUSPLUS = NO
- EXECUTABLE_EXT = .exe
- ifeq "STATIC" "$(LIBRARY_STYLE)"
- LIBRARY_EXT = .lib
- else
- LIBRARY_EXT = .dll
- endif
- LIBRARY_PREFIX =
- DLL_EXT = .dll
- EXP_EXT = .exp
- NULL = NUL
- ifneq "$(LIBRARY_STYLE)" "STATIC"
- WINDOWS_DEF_FILE = $(NAME).def
- endif
-
- else
-
- LINK_SUBPROJECTS = YES
- EXECUTABLE_EXT =
- LIBRARY_PREFIX = lib
-
- ifeq "SOLARIS" "$(OS)"
- ifeq "STATIC" "$(LIBRARY_STYLE)"
- LIBRARY_EXT = .a
- else
- LIBRARY_EXT = .so
- endif
- else
- ifeq "STATIC" "$(LIBRARY_STYLE)"
- LIBRARY_EXT = .a
- else
- LIBRARY_EXT = .dylib
- endif
- endif
-
- DLL_EXT =
- NULL = /dev/null
-
- endif
-
- ifneq "NO" "$(INCLUDE_COMPATIBILITY_MAKEFILE)"
- include $(MAKEFILEDIR)/compatibility.make
- endif
-
- #
- # Roots
- #
-
- SRCROOT := $(shell pwd)
- # BUILD_OUTPUT_DIR is defined below under Directories
- ifndef OBJROOT
- OBJROOT = $(BUILD_OUTPUT_DIR)
- endif
- ifndef SYMROOT
- SYMROOT = $(BUILD_OUTPUT_DIR)
- endif
-
- #
- # Directories
- #
-
- ifneq "" "$($(OS)_BUILD_OUTPUT_DIR)"
- BUILD_OUTPUT_DIR = $($(OS)_BUILD_OUTPUT_DIR)
- endif
- ifeq "" "$(BUILD_OUTPUT_DIR)"
- BUILD_OUTPUT_DIR = $(SRCROOT)
- endif
-
- # Directories for derived files
- PRODUCT_DIR = $(SYMROOT)
- OFILE_DIR = $(OBJROOT)/obj$(OFILE_DIR_SUFFIX)
- SFILE_DIR = $(SYMROOT)/derived_src
- JAVA_SRC_DIR = $(SYMROOT)/java_src
- JAVA_OBJ_DIR = $(OBJROOT)/java_obj
-
- PROJECT_HDR_DIR = $(SYMROOT)/ProjectHeaders
- ifneq "" "$(PUBLIC_HDR_DIR)"
- PUBLIC_HDR_DIR = $(SYMROOT)/Headers/$(notdir $(PUBLIC_HDR_INSTALLDIR))
- endif
- ifeq "YES" "$(WRAPPED)"
- PUBLIC_HDR_DIR = $(PRODUCT)/Headers
- endif
- ifneq "" "$(PRIVATE_HDR_DIR)"
- PRIVATE_HDR_DIR = $(SYMROOT)/PrivateHeaders/$(notdir $(PRIVATE_HDR_INSTALLDIR))
- endif
- ifeq "YES" "$(WRAPPED)"
- PRIVATE_HDR_DIR = $(PRODUCT)/PrivateHeaders
- endif
- export PUBLIC_HDR_DIR
- export PRIVATE_HDR_DIR
- export PUBLIC_HDR_INSTALLDIR
- export PRIVATE_HDR_INSTALLDIR
-
- #
- # File Lists
- #
-
- VPATH = $(OFILE_DIR) $(SFILE_DIR) $(LANGUAGE).lproj
- GENERATED_SRCFILES = $(MSGFILES:%.msg=%Speaker.h) $(MSGFILES:%.msg=%Speaker.m) $(MSGFILES:%.msg=%Listener.h) $(MSGFILES:%.msg=%Listener.m) $(DEFSFILES:%.defs=%.h) $(DEFSFILES:%.defs=%User.c) $(DEFSFILES:%.defs=%Server.c) $(MIGFILES:%.mig=%.h) $(MIGFILES:%.mig=%User.c) $(MIGFILES:%.mig=%Server.c) $(PSWFILES:.psw=.h) $(PSWFILES:.psw=.c) $(PSWMFILES:.pswm=.h) $(PSWMFILES:.pswm=.m) $(subst .x_svc,.c, $(subst .x_clnt,.c, $(subst .x_xdr,.c, $(subst .x,.h, $(RPCFILES))))) $(YFILES:.y=.c) $(YFILES:.y=.h) $(LFILES:.l=.c) $(OTHER_GENERATED_SRCFILES)
- SRCFILES = PB.project $(JAVA_CLASSES) $(OTHERSRCS) $(HFILES) $(CLASSES) $(MFILES) $(CFILES) $(CAPCFILES) $(CAPMFILES) $(YFILES) $(LFILES) $(PSWFILES) $(PSWMFILES) $(LOCAL_RESOURCES) $(GLOBAL_RESOURCES) $(HELP_FILES) $(OTHERLINKED) $(OTHER_SOURCEFILES)
-
- LOCAL_OFILES = $(CLASSES:.m=.o) $(MFILES:.m=.o) $(CFILES:.c=.o) $(CAPCFILES:.C=.o) $(CAPMFILES:.M=.o) $(CCFILES:.cc=.o) $(CPPFILES:.cpp=.o) $(CXXFILES:.cxx=.o) $(PSWFILES:.psw=.o) $(PSWMFILES:.pswm=.o) $(PROJTYPE_OFILES) $(OTHERLINKEDOFILES) $(OTHER_OFILES) $(OTHER_GENERATED_OFILES)
-
- ifeq "YES" "$(LINK_SUBPROJECTS)"
- SUBPROJ_OFILES = $(addsuffix _subproj.o,$(SUBPROJECTS))
- OFILES = $(LOCAL_OFILES) $(SUBPROJ_OFILES)
- OFILELISTS =
- else
- OFILES = $(LOCAL_OFILES)
- ifneq "" "$(SUBPROJECTS)"
- OFILELISTS = $(NAME).ofileList
- endif
- endif
-
- ifneq "$(JAVA_CLASSES)" ""
- JAVA_ENABLED = YES
- endif
-
- ALL_PRECOMPS = $(PRECOMPILED_HEADERS:.h=.p) $(PRECOMPS)
- PRECOMPILED_PUBLIC_HEADERS = $(foreach X, $(PRECOMPILED_HEADERS), $(findstring $(X), $(PUBLIC_HEADERS)))
- PRECOMPILED_PRIVATE_HEADERS = $(foreach X, $(PRECOMPILED_HEADERS), $(findstring $(X), $(PRIVATE_HEADERS)))
- PRECOMPILED_PROJECT_HEADERS = $(foreach X, $(PRECOMPILED_HEADERS), $(findstring $(X), $(PROJECT_HEADERS)))
-
- SUBPROJ_OFILELISTS = $(addsuffix _subproj.ofileList,$(SUBPROJECTS))
-
- $(OFILELISTS): $(SUBPROJ_OFILELISTS) Makefile
- $(OFILE_LIST_TOOL) -o $(OFILE_DIR)/$(NAME).ofileList $(SUBPROJ_OFILELISTS)
-
- ifeq "$(BUILD_TYPE)" "normal"
- FRAMEWORK_FLAGS = $(FRAMEWORKS)
- PROJTYPE_FRAMEWORK_FLAGS = $(PROJTYPE_FRAMEWORKS)
- OTHER_FRAMEWORK_FLAGS = $(OTHER_FRAMEWORKS)
- OPTIONAL_FRAMEWORK_FLAGS = $(OPTIONAL_FRAMEWORKS)
-
- else
-
- FRAMEWORK_FLAGS = $(shell $(FRAMEWORK_TOOL) $(FRAMEWORKS) $(BUILD_TYPE))
- PROJTYPE_FRAMEWORK_FLAGS = $(shell $(FRAMEWORK_TOOL) $(PROJTYPE_FRAMEWORKS) $(BUILD_TYPE))
- OTHER_FRAMEWORK_FLAGS = $(shell $(FRAMEWORK_TOOL) $(OTHER_FRAMEWORKS) $(BUILD_TYPE))
- OPTIONAL_FRAMEWORK_FLAGS = $(shell $(FRAMEWORK_TOOL) $(OPTIONAL_FRAMEWORKS) $(BUILD_TYPE))
- endif
-
- DEPENDENCIES = $(OFILES) $(OFILELISTS) $(OTHER_PRODUCT_DEPENDS)
-
- ifeq "$(LIBRARY_STYLE)" "STATIC"
- LOADABLES = $(OFILES) $(OFILELISTS:%=-filelist %) $(LIBS) $(PROJTYPE_LIBS) $(OTHER_LIBS) $(OPTIONAL_LIBS)
- else
- LOADABLES = $(OFILES) $(OFILELISTS:%=-filelist %) $(LIBS) $(FRAMEWORK_FLAGS) $(PROJTYPE_LIBS) $(PROJTYPE_FRAMEWORK_FLAGS) $(OTHER_LIBS) $(OTHER_FRAMEWORK_FLAGS) $(OPTIONAL_LIBS) $(OPTIONAL_FRAMEWORK_FLAGS)
- endif
-
- GARBAGE = $(OBJROOT)/obj $(OBJROOT)/obj-* $(SFILE_DIR) $(PROJECT_HDR_DIR) $(PROJTYPE_GARBAGE) $(OTHER_GARBAGE) $(PRECOMPILED_HEADERS:.h=.p) $(PRECOMPS) $(JAVA_SRC_DIR) $(JAVA_OBJ_DIR)
-
-
- include $(MAKEFILEDIR)/versions.make
- include $(MAKEFILEDIR)/commands-$(OS).make
- include $(MAKEFILEDIR)/flags.make
- include $(MAKEFILEDIR)/implicitrules.make
- include $(MAKEFILEDIR)/recursion.make
- include $(MAKEFILEDIR)/depend.make
-
- # "Versioning Systems" adapt these makefiles to an SCM system in the following 2 ways:
- # 1. Provide a rule for an object file that can be linked into binaries produced here
- # (e.g. $(VERS_OFILE) could then be included in OTHER_GENERATED_OFILES).
- # 2. Provide a decimal number that can be used as the current project version to be
- # stored in a Mach dylib (i.e. $(CURRENT_PROJECT_VERSION)).
-
- ifndef VERSIONING_SYSTEM_MAKEFILEDIR
- VERSIONING_SYSTEM_MAKEFILEDIR = $(NEXT_ROOT)/NextDeveloper/Makefiles/VersioningSystems
- endif
-
- ifndef LOCAL_VERSIONING_SYSTEM_MAKEFILEDIR
- LOCAL_VERSIONING_SYSTEM_MAKEFILEDIR = $(NEXT_ROOT)/LocalDeveloper/Makefiles/VersioningSystems
- endif
-
- -include $(VERSIONING_SYSTEM_MAKEFILEDIR)/$(VERSIONING_SYSTEM).make
- -include $(LOCAL_VERSIONING_SYSTEM_MAKEFILEDIR)/$(VERSIONING_SYSTEM).make
-
- # In case $(VERSIONING_SYSTEM).make didn't set CURRENT_PROJECT_VERSION...
-
- ifeq "" "$(CURRENT_PROJECT_VERSION)"
- CURRENT_PROJECT_VERSION = 1
- endif
- ifeq "" "$(COMPATIBILITY_PROJECT_VERSION)"
- COMPATIBILITY_PROJECT_VERSION = 1
- endif
-
- # STRIP_ON_INSTALL must have a value
- ifneq "$(STRIP_ON_INSTALL)" "NO"
- STRIP_ON_INSTALL = YES
- endif
-
-
- ifneq "AGGREGATE" "$(PROJTYPE)"
- include $(MAKEFILEDIR)/prebuild.make
- include $(MAKEFILEDIR)/build.make
- include $(MAKEFILEDIR)/installhdrs.make
- include $(MAKEFILEDIR)/install.make
- endif
- include $(MAKEFILEDIR)/installsrc.make
- -include $(SFILE_DIR)/Makefile.dependencies
-
- always:
-
-
- #
- # Sequencing
- #
-
- ifneq "YES" "$(RECURSING)"
- announce-prebuild announce-build announce-installhdrs announce-install: display-masthead
- endif
-
- ifneq "AGGREGATE" "$(PROJTYPE)"
- ifneq "YES" "$(RECURSING)"
- ifneq "YES" "$(SKIP_BUILD)"
- announce-install: build
- endif
- ifneq "YES" "$(SKIP_PREBUILD)"
- announce-build: prebuild
- endif
- endif
- endif
-
- #
- # Conveniences
- #
-
- profile:
- $(SILENT) $(MAKE) PROFILE=YES \
- BUILD_TYPE=$@ \
- BUILD_TYPE_SUFFIX=_profile \
- APP_WRAPPER_EXTENSION=.profile \
- $(RESET_CUMULATIVE_VARIABLES)
-
- debug:
- $(SILENT) $(MAKE) DEBUG=YES PROFILE=NO OPTIMIZE=NO \
- BUILD_TYPE=$@ \
- BUILD_TYPE_SUFFIX=_debug \
- APP_WRAPPER_EXTENSION=.debug \
- $(RESET_CUMULATIVE_VARIABLES)
-
- BUILD_TYPE = normal
-
- #
- # Masthead
- #
-
- display-masthead:
- ifeq "$(BUILD_TYPE)" "normal"
- $(SILENT) $(ECHO) == Making $(NAME) for $(TARGET_ARCHS) ==
- else
- $(SILENT) $(ECHO) == Making $(BUILD_TYPE) on $(NAME) for $(TARGET_ARCHS) ==
- endif
-
- #
- # Makefile-Debugging and Variable-Access Rules
- #
-
- .PHONY: show-variable sv show-expression se
-
- VARIABLE=$(V)
- show-variables sv:
- $(SILENT) $(foreach X, $(VARIABLE), $(ECHO) "$($(X))";)
- EXPRESSION=$(E)
- show-expression se:
- $(SILENT) $(foreach X, $(EXPRESSION), $(ECHO) "$(X)";)
-
- echo_makefile_variable:
- $(SILENT) $(foreach X, $(VAR_NAME), $(ECHO) "$($(X))";)
-
- echo_makefile_expression:
- $(SILENT) $(foreach X, $(EXPR_STRING), $(ECHO) "$(X)";)
-
- #
- # Cleaning Rules
- #
-
- .PHONY: clean mostlyclean announce-clean
-
- clean: announce-clean
- $(RM) -rf $(GARBAGE) $(PRODUCTS)
-
- mostlyclean: announce-clean
- $(RM) -rf $(GARBAGE)
-
- announce-clean:
- $(SILENT) $(ECHO) == Cleaning $(NAME) ==
-
-
- #
- # Some install conveniences that apply to all projects
- #
-
- install_debug:
- $(MAKE) install DEBUG=YES PROFILE=NO OPTIMIZE=NO STRIP_ON_INSTALL=NO
-
- install_unstripped:
- $(MAKE) install DEBUG=NO PROFILE=NO OPTIMIZE=YES STRIP_ON_INSTALL=NO
-
- install_profile:
- $(MAKE) install DEBUG=YES PROFILE=YES OPTIMIZE=YES STRIP_ON_INSTALL=NO
-
-
- -include $(LOCAL_MAKEFILEDIR)/common.make.postamble
-